package adapter.mgq.adapter;

/**
 * @author MaGuangQi
 * @description 默认媒体播放类, 默认只能播放mp3
 * 现在需要让它能播放vlc和mp4,传统做法是让AudioPlayer视线AdvancedMediaPlayer接口
 * 但是这样增加了2个方法.而且不满足一个播放多种类型
 * 引入适配器,让此类适配其他类
 *
 * 对调用者AdapterPatternDemo对象来说,只需要调用play接口,不关心具体的实现
 * 底层通过适配器,适配了vlc和mp4.达到了原本由于接口不兼容而不能一起工作的那些类可以一起工作.
 * @date 2020-06-06 23:37
 **/
public class AudioPlayer implements MediaPlayer {
    /**
     * 适配器类
     */
    MediaAdapter mediaAdapter;

    @Override
    public void play(String audioType, String filename) {
        //播放 mp3 音乐文件的内置支持
        if (audioType.equalsIgnoreCase("mp3")) {
            System.out.println("Playing mp3 file. Name: " + filename);
        } else if (audioType.equalsIgnoreCase("vlc")
                || audioType.equalsIgnoreCase("mp4")) {
            //记得此处需要创建适配器对象,根据类型
            mediaAdapter = new MediaAdapter(audioType);
            mediaAdapter.play(audioType, filename);
        }else {
            System.out.println("not support format");
        }
    }
}
